using System;
using System.Runtime.InteropServices;
using System.Security.Permissions;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Security;
using QASPRibbon;
using QASPRibbon.Controls;

namespace QASPRibbonSandbox.Features.Feature1
{
    /// <summary>
    /// This class handles events raised during feature activation, deactivation, installation, uninstallation, and upgrade.
    /// </summary>
    /// <remarks>
    /// The GUID attached to this class may be used during packaging and should not be modified.
    /// </remarks>

    [Guid("19619107-0fdd-4d58-b16f-cd9b23238fc9")]
    public class Feature1EventReceiver : SPFeatureReceiver
    {
        // Uncomment the method below to handle the event raised after a feature has been activated.

        public override void FeatureActivated(SPFeatureReceiverProperties properties)
        {
            var tab = new RibbonTab("tab1", "Tab 1")
                {
                    Groups = new[]
                        {
                            new RibbonGroup("group1", "Group 1")
                                {
                                    Alignment = RibbonGroupAlignment.Top,
                                    DisplayMode = RibbonDisplayMode.Image32AndCaption,
                                    Controls = new RibbonControl[]
                                        {
                                            new RibbonButton("button1", "Button 1")
                                                {
                                                    Image = RibbonImageDefinition.Hive32.CenterAdmin.FarmConfiguration,
                                                    OnClientClick = "alert('click!')",
                                                    ToolTip = new RibbonToolTip("tooltip1", string.Empty)
                                                }
                                        }
                                }
                        }
                };

            var ca = new RibbonCustomAction();
            ca.AddTab(tab);
            var group = new RibbonGroup("group1", "Group 1")
                {
                    Alignment = RibbonGroupAlignment.Top,
                    DisplayMode = RibbonDisplayMode.Image32AndCaption,
                    Controls = new RibbonControl[]
                        {
                            new RibbonButton("button1", "Button 1")
                                {
                                    Image = RibbonImageDefinition.Hive32.CenterAdmin.FarmConfiguration,
                                    OnClientClick = "alert('click!')",
                                    ToolTip = new RibbonToolTip("tooltip1", string.Empty)
                                }
                        }
                };
            ca.AddControlGroup(group, "Ribbon.List", 201);
            ca.Provision(Guid.NewGuid(), properties.Feature.Parent as SPWeb, ListTypes.TasksList, ListForms.All);
        }


        // Uncomment the method below to handle the event raised before a feature is deactivated.

        public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
        {
            //RibbonCustomAction.RemoveAllCustomizations(properties.Feature.Parent as SPWeb,);
        }


        // Uncomment the method below to handle the event raised after a feature has been installed.

        //public override void FeatureInstalled(SPFeatureReceiverProperties properties)
        //{
        //}


        // Uncomment the method below to handle the event raised before a feature is uninstalled.

        //public override void FeatureUninstalling(SPFeatureReceiverProperties properties)
        //{
        //}

        // Uncomment the method below to handle the event raised when a feature is upgrading.

        //public override void FeatureUpgrading(SPFeatureReceiverProperties properties, string upgradeActionName, System.Collections.Generic.IDictionary<string, string> parameters)
        //{
        //}
    }
}
